#ifndef LCD_H_
#define LCD_H_

/*************************************************
Copyright (C), 2024, Tech. Co., Ltd.
File name: // 文件名
Author: 
Version: 
Date: // 作者、版本及完成日期
Description: // 用于详细说明此程序文件完成的主要功能，与其他模块
// 或函数的接口，输出值、取值范围、含义及参数间的控
// 制、顺序、独立或依赖等关系
Others: // 其它内容的说明
Function List: // 主要函数列表，每条记录应包括函数名及功能简要说明
1. ....
History: // 修改历史记录列表，每条修改记录应包括修改日期、修改
// 者及修改内容简述 
1. Date:
Author:
Modification:
2. ...
*************************************************/

#include <stdbool.h>
#include <stdint.h>

typedef struct {
    int16_t x;                  // 坐标
    int16_t y;
    int16_t width;              // 宽
    int16_t height;             // 高
    // uint32_t bits_per_pixel;    // 色深
}GraphRect;

// 初始化
bool init_lcd();

// 结束lcd
void destroy_lcd();

// 获取lcd显示屏的分辨率
bool get_xyRes(int32_t *x, int32_t *y);

// 清屏  将屏幕绘制为 color 的颜色
void clear_lcd(uint32_t color);

// 清除 一个区域的颜色为 color
void clear_rect(uint32_t color, int32_t x, int32_t y, uint32_t width, uint32_t height);

// 像素数据， 坐标、图像的宽、高  图像的色深  绘制图像
GraphRect draw_graph(void *pixeldata, int32_t x, int32_t y, uint32_t width,
                     uint32_t height, uint32_t bytePixel, bool isReverse);

// 绘制矩形
GraphRect draw_rect(int32_t x, int32_t y, uint32_t width, uint32_t height, uint32_t color);

#endif//LCD_H_